Current File : /home/jeconsul/public_html/wp-content/plugins/sureforms/assets/js/minified/validation.min.js |
import{applyFilters}from"@wordpress/hooks";async function getUniqueValidationData(t,e,r,o){let s="action=validation_ajax_action&nonce="+encodeURIComponent(o)+"&id="+encodeURIComponent(e);Object.keys(t).forEach(e=>{s+="&"+encodeURIComponent(e)+"="+encodeURIComponent(t[e])});try{var i=await fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s});if(i.ok)return(await i.json()).data}catch(e){console.error(e)}}async function fieldValidation(e,t,r,o,s=!1){let n=!1,i=null,l=null,a={};const c=(e,t,r={})=>{i||(i=e,l=t,a=r)};let m=null;var f=document.querySelectorAll('input[data-unique="true"]');if(0!==f.length){var u={};for(const A of f){var d=A.name,g=A.value;u[d]=g}m=await getUniqueValidationData(u,e,t,r)}for(const L of s?[o]:Array.from(o.querySelectorAll(".srfm-block-single"))){let t=!1;if(Array.isArray(window.sureforms?.skipValidationCallbacks)&&window.sureforms.skipValidationCallbacks.forEach(e=>{"function"==typeof e&&(t=t||e(L))}),!t){var w=L.closest("form").getAttribute("form-id");if(w===e){let r,e;e=!0===L.classList.contains("srfm-phone-block")?(r=L.querySelector(".srfm-input-phone"))?.nextElementSibling?.value:(r=L.querySelector("input, textarea, select")).value;var b,p,w=r.getAttribute("data-required"),S=r.getAttribute("data-unique");let t=r.getAttribute("name");const x=L.querySelector(".srfm-error-message");if(t=t&&t.replace(/_/g," "),w&&"hidden"!==r.type&&("true"!==w||e?r&&window?.srfm?.toggleErrorState(r.closest(".srfm-block"),!1):(r&&window?.srfm?.toggleErrorState(r.closest(".srfm-block"),!0),x&&(x.textContent=x.getAttribute("data-error-msg")),n=!0,c(r,r.closest(".srfm-block"))),r.addEventListener("input",()=>{window?.srfm?.toggleErrorState(r.closest(".srfm-block"),!1)})),"true"===S&&""!==e&&(m?.some(e=>"not unique"===e[t])?(r&&window?.srfm?.toggleErrorState(r.closest(".srfm-block"),!0),x.style.display="block",x.textContent=x.getAttribute("data-unique-msg"),n=!0,c(r,r.closest(".srfm-block"))):r&&(window?.srfm?.toggleErrorState(r.closest(".srfm-block"),!1),x.style.display="none")),L.classList.contains("srfm-multi-choice-block")||L.classList.contains("srfm-checkbox-block")||L.classList.contains("srfm-gdpr-block")){var y=L.querySelectorAll("input"),S=y[0].getAttribute("data-required");let t=!1,r=null;for(let e=0;e<y.length;e++)if(r||"hidden"===y[e].type||(r=y[e]),y[e].checked){t=!0;break}"true"!==S||t?x&&window?.srfm?.toggleErrorState(L,!1):(x&&(x.textContent=L.querySelector(".srfm-error-message").getAttribute("data-error-msg"),window?.srfm?.toggleErrorState(L,!0)),n=!0,c(r,L)),y.forEach(e=>{e.addEventListener("input",()=>{window?.srfm?.toggleErrorState(L,!1)})})}if(L.classList.contains("srfm-url-block")&&(S=L.querySelector("input"),L.classList.contains("srfm-url-error")&&(window?.srfm?.toggleErrorState(L,!0),n=!0,c(S,L)),S.addEventListener("input",()=>{window?.srfm?.toggleErrorState(L,!1)})),L.classList.contains("srfm-phone-block")&&(S=L.querySelectorAll("input")[1],L.classList.contains("srfm-phone-error")&&(window?.srfm?.toggleErrorState(L,!0),n=!0,c(S,L)),L.querySelectorAll("input").forEach(e=>{e.addEventListener("input",()=>{window?.srfm?.toggleErrorState(L,!1)})})),L.classList.contains("srfm-password-block-wrap")&&(S=L)&&(S=S.querySelector(".srfm-password-confirm-block"))&&(p=S.querySelector(".srfm-input-password-confirm").value,b=S.querySelector(".srfm-error-message"),!p&&b&&"true"===w?(b.textContent=b.getAttribute("data-error-msg"),window?.srfm?.toggleErrorState(S,!0),c(p,S),n=!0):p!==e?(window?.srfm?.toggleErrorState(S,!0),b.textContent=window?.srfm_submit?.messages?.srfm_confirm_password_same,c(p,S),n=!0):window?.srfm?.toggleErrorState(S,!1)),L.classList.contains("srfm-email-block-wrap")){const C=L;if(C){const V=C.querySelector(".srfm-email-confirm-block");C.classList.contains("srfm-valid-email-error")&&(c(r,C),n=!0),V&&(b=V.querySelector(".srfm-input-email-confirm"),p=V.querySelector(".srfm-input-email-confirm").value,S=V.querySelector(".srfm-error-message"),!p&&S&&"true"===w?(S.textContent=S.getAttribute("data-error-msg"),window?.srfm?.toggleErrorState(V,!0),c(b,V),n=!0):p!==e?(window?.srfm?.toggleErrorState(V,!0),S.textContent=window?.srfm_submit?.messages?.srfm_confirm_email_same,c(b,V),n=!0):window?.srfm?.toggleErrorState(V,!1),b.addEventListener("input",()=>{window?.srfm?.toggleErrorState(V,!1)})),C.querySelector(".srfm-input-email").addEventListener("input",()=>{window?.srfm?.toggleErrorState(C,!1)})}}if(L.classList.contains("srfm-upload-block")&&("true"!==(k=(S=L.querySelector(".srfm-input-upload")).getAttribute("data-required"))||S.value?r&&window?.srfm?.toggleErrorState(r.closest(".srfm-block"),!1):("true"===k&&x&&(x.textContent=x.getAttribute("data-error-msg")),r&&window?.srfm?.toggleErrorState(r.closest(".srfm-block"),!0),n=!0,c(S,L)),S.addEventListener("input",()=>{r&&window?.srfm?.toggleErrorState(r.closest(".srfm-block"),!1)})),L.classList.contains("srfm-number-block")){var k=r.getAttribute("min"),S=r.getAttribute("max"),E=r.getAttribute("format-type");if(e){var E="eu-style"===E?parseFloat(e.replace(/\./g,"").replace(",",".")):parseFloat(e.replace(/,/g,""));if(k||S){let e=!1,t="";k&&""!==k&&Number(E)<Number(k)?(e=!0,t=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_input_min_value,k)):S&&""!==S&&Number(E)>Number(S)&&(e=!0,t=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_input_max_value,S)),window?.srfm?.toggleErrorState(r.closest(".srfm-block"),e),x&&(x.textContent=e?t:"",e)&&(n=!0,c(r,L))}}}if(L.classList.contains("srfm-rating-block")&&("true"!==(E=L.querySelector(".srfm-input-rating")).getAttribute("data-required")||E.value?window?.srfm?.toggleErrorState(E.closest(".srfm-block"),!1):(window?.srfm?.toggleErrorState(E.closest(".srfm-block"),!0),n=!0,c(L.querySelector(".srfm-icon"),L))),L.classList.contains("srfm-slider-block")){var S=L.getAttribute("data-required"),v=L.querySelector(".srfm-input-slider"),h=L.querySelector(".srfm-text-slider"),q=L.getAttribute("data-default");if("true"===S){let e=!1;(e=(!v||v.dataset.interacted||q&&"false"!==q)&&(!h||h.dataset.interacted||q&&"false"!==q)?e:!0)?(window?.srfm?.toggleErrorState(L,!0),n=!0,c(v,L)):window?.srfm?.toggleErrorState(L,!1)}}if(L.classList.contains("srfm-dropdown-block")){S=L.querySelectorAll(".srfm-input-dropdown-hidden");const I=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;S.forEach(e=>{const t=e.getAttribute("data-required");var r,o,s,i=e.getAttribute("name");"true"!==t||e.value?e.value?(s=e.getAttribute("data-min-selection"),r=e.getAttribute("data-max-selection"),(s||r)&&(o=e.value.split(","),s&&o.length<s?(x.textContent=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_dropdown_min_selections,s),window?.srfm?.toggleErrorState(e.closest(".srfm-block"),!0),n=!0):r&&o.length>r&&(x.textContent=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_dropdown_max_selections,r),window?.srfm?.toggleErrorState(e.closest(".srfm-block"),!0),n=!0))):window?.srfm?.toggleErrorState(e.closest(".srfm-block"),!1):(x.textContent=x.getAttribute("data-error-msg"),window?.srfm?.toggleErrorState(e.closest(".srfm-block"),!0),n=!0),n&&(s=window?.srfm?.[i]||e,c(s,e.closest(".srfm-block"),{shouldDelayOnFocus:!0})),new I(()=>{e.value?window?.srfm?.toggleErrorState(e.closest(".srfm-block"),!1):"true"===t&&window?.srfm?.toggleErrorState(e.closest(".srfm-block"),!0)}).observe(e,{attributes:!0,attributeFilter:["value"]})})}if(L.classList.contains("srfm-multi-choice-block")){var _=L.querySelectorAll("input"),h=_[0].getAttribute("data-min-selection"),q=_[0].getAttribute("data-max-selection");let t=null,r=0,e=!1;for(let e=0;e<_.length;e++)t||"hidden"===_[e].type||(t=_[e]),_[e].checked&&r++;(h||q)&&0<r&&(!e&&0<h&&(w&&1<h||!w)&&r<h&&(x.textContent=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_multi_choice_min_selections,h),e=!0),!e&&0<q&&r>q&&(x.textContent=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_multi_choice_max_selections,q),e=!0),e?(window?.srfm?.toggleErrorState(L,!0),c(t,L),n=!0):w||window?.srfm?.toggleErrorState(L,!1))}n=applyFilters("srfm.modifyFieldValidationResult",n,L,c)}}}return!!n&&{validateResult:n,firstErrorInput:i,scrollElement:l,...a}}function initializeInlineFieldValidation(){["srfm-input-block","srfm-email-block-wrap","srfm-url-block","srfm-phone-block","srfm-checkbox-block","srfm-gdpr-block","srfm-number-block","srfm-multi-choice-block","srfm-datepicker-block","srfm-upload-block","srfm-rating-block","srfm-textarea-block","srfm-dropdown-block","srfm-slider-block"].forEach(e=>addBlurListener(e,"."+e)),validateMultiChoiceMinMax()}function validateMultiChoiceMinMax(){document.querySelectorAll(".srfm-multi-choice-block").forEach(e=>{const o=e.querySelector(".srfm-input-multi-choice-hidden");if(o){const s=o.getAttribute("data-min-selection"),i=o.getAttribute("data-max-selection");if(s||i){const n=e.querySelector(".srfm-error-message"),l=window?.srfm_submit?.messages||{};e.addEventListener("input",()=>{var t=o.value.split(",").filter(Boolean).length;if(0===t)window?.srfm?.toggleErrorState(e,!1);else{var r=o.closest(".srfm-block");let e="";s&&t<s?e=window?.srfm?.srfmSprintfString(l.srfm_multi_choice_min_selections,s):i&&t>i&&(e=window?.srfm?.srfmSprintfString(l.srfm_multi_choice_max_selections,i)),n.textContent=e,window?.srfm?.toggleErrorState(r,Boolean(e))}})}}})}function addBlurListener(t,r){var e=Array.from(document.getElementsByClassName(t));if(e)for(const o of e){let e=o.querySelector("input")||o.querySelector("textarea")||o.querySelector("select");if("srfm-upload-block"===t&&(e=o.querySelector('input[type="file"]')),"srfm-rating-block"===t&&addRatingBlurListener(e,o,r),"srfm-multi-choice-block"===t&&addMultiChoiceBlurListener(e,o,r),"srfm-email-block-wrap"===t&&addEmailBlurListener(o,r),"srfm-slider-block"===t&&addSliderBlurListener(e,o,r),"srfm-dropdown-block"===t){const s=e.getAttribute("name");setTimeout(()=>{window?.srfm?.[s]?.on("blur",function(){fieldValidationInit(e,r)})},500)}(e="srfm-phone-block"===t?o.querySelector(".srfm-input-phone"):e)&&e.addEventListener("blur",async function(){fieldValidationInit(e,r)})}}function addRatingBlurListener(e,t,r){t.querySelectorAll(".srfm-icon").forEach(e=>{e.addEventListener("blur",async function(){fieldValidationInit(e,r)})})}function addMultiChoiceBlurListener(e,t,r){t.querySelectorAll(".srfm-input-multi-choice-single").forEach(e=>{e.addEventListener("blur",async function(){fieldValidationInit(e,r)})})}function addEmailBlurListener(e,t){var r=e.querySelectorAll("input");const n=e.closest(t);r.forEach(i=>{i.addEventListener("input",async function(){i.value=i.value.trim().toLowerCase();let e=!1;/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(i.value)&&(e=!0);var t=i.classList.contains("srfm-input-email-confirm")?n.querySelector(".srfm-email-confirm-block"):n.querySelector(".srfm-email-block"),r=t.querySelector(".srfm-error-message");if(i.value||(r.style.display="none",t.classList.remove("srfm-valid-email-error")),i.classList.contains("srfm-input-email-confirm")){var o=n.querySelector(".srfm-input-email"),s=n.querySelector(".srfm-email-confirm-block").querySelector(".srfm-error-message");if(o.value!==i.value)return s.style.display="block",s.textContent=window?.srfm_submit?.messages?.srfm_confirm_email_same,void window?.srfm?.toggleErrorState(n,!0);window?.srfm?.toggleErrorState(n,!1),s.textContent="",s.style.display="none"}""===i?.value||e?(r.style.display="none",t.parentElement.classList.remove("srfm-valid-email-error"),r.removeAttribute("id")):(t.parentElement.classList.add("srfm-valid-email-error"),r.style.display="block",r.innerHTML=window?.srfm_submit?.messages?.srfm_valid_email,r.id=r.getAttribute("data-srfm-id"))})})}function addSliderBlurListener(e,t,r){const o=t.querySelector(".srfm-input-slider");t=t.querySelector(".srfm-text-slider");if(o&&o.addEventListener("blur",async function(){fieldValidationInit(o,r)}),t){const s=t.querySelector(".srfm-slider-thumb");s&&s.addEventListener("blur",async function(){fieldValidationInit(s,r)})}}const fieldValidationInit=async(e,t)=>{e=e.closest(t),t=e.closest("form");await fieldValidation(t.getAttribute("form-id"),t.getAttribute("ajaxurl"),t.getAttribute("data-nonce"),e,!0)},handleScrollAndFocusOnError=e=>{var t,r,o;e?.firstErrorInput&&(e?.scrollElement&&(t=e.scrollElement.getBoundingClientRect().top,r=window.pageYOffset,o=window.innerHeight,window.scroll({top:t+r-o/2,behavior:"smooth"})),e?.shouldDelayOnFocus?setTimeout(()=>{e.firstErrorInput.focus({preventScroll:!0})},500):e.firstErrorInput.focus({preventScroll:!0}))},handleCaptchaValidation=(e,t,r,o)=>{if(!(e||t||r||o))return!0;let s;"v2-checkbox"===e?s=grecaptcha.getResponse():t?s=hcaptcha.getResponse():r&&(s=turnstile.getResponse());e=0<s.length;return o.style.display=e?"none":"block",e};export{fieldValidation,initializeInlineFieldValidation,handleScrollAndFocusOnError,handleCaptchaValidation};